package net.hn.hnms.sys.message.api;

import net.hn.hnms.sys.common.core.constant.ServiceNameConstants;
import net.hn.hnms.sys.common.core.exception.ServiceException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

/**
 * 邮件服务
 *
 * @author Lion Li
 */
@FeignClient(contextId = "RemoteMailService", value = ServiceNameConstants.MESSAGE_SERVICE)
public interface RemoteMailService {

    /**
     * 发送邮件
     *
     * @param to      接收人,可以使用逗号“,”分隔，也可以通过分号“;”分隔
     * @param subject 标题
     * @param text    内容
     */
    @PostMapping("/mail/send")
    public void send(String to, String subject, String text) throws ServiceException;

    /**
     * 发送邮件带附件
     *
     * @param to       接收人,可以使用逗号“,”分隔，也可以通过分号“;”分隔
     * @param subject  标题
     * @param text     内容
     * @param fileList 附件数组
     */
    @PostMapping("/mail/sendWithAttachment")
    public void sendWithAttachment(String to, String subject, String text, @RequestParam(value = "fileList",required = false)MultipartFile[] fileList) throws ServiceException;


    /**
     * 功能描述:
     * @auther: WangLong
     * @date: 2022/7/15 17:31
     * @param to      收件人，可以使用逗号“,”分隔，也可以通过分号“;”分隔
     * @param cc      抄送人，可以使用逗号“,”分隔，也可以通过分号“;”分隔
     * @param bcc     密送人，可以使用逗号“,”分隔，也可以通过分号“;”分隔
     * @param subject 标题
     * @param text 正文
     * @param fileList  附件列表
     * @return java.lang.String
     */
    @PostMapping("sendWithAttachments")
    public String sendWithAttachments(String to, String cc, String bcc, String subject, String text, @RequestParam(value = "fileList", required = false) MultipartFile[] fileList) throws ServiceException;


    }
